package com.rs.entity.basic;

import cn.hutool.core.util.StrUtil;
import com.rs.entity.enums.LiftStatus;
import com.rs.entity.enums.VehicleStatus;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 设备实时状态
 *
 * @author zhouwz
 * @date 2020/3/19 14:38
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
public class DeviceStatus extends Base<DeviceStatus> {

    private static final long serialVersionUID = 1L;

    /**
     * 设备编号
     */
    private String deviceNo;

    /**
     * 地码编号
     */
    private String nodeCode;

    /**
     * 地码别名
     */
    private String nodeName;

    /**
     * 角度
     */
    private BigDecimal angle;

    /**
     * 电量
     */
    private BigDecimal power;

    /**
     * 状态 0-闲置 1-执行任务 2-充电
     */
    private String status;

    /**
     * 任务单编号
     */
    private String taskNo;

    /**
     * 举升状态
     */
    private Integer liftStatus;

    /**
     * 货架编号
     */
    private String shelfNo;

    /**
     * 货架方向
     */
    private Integer shelfDirection;

    /**
     * 到达点位时间
     */
    private Date arriveTime;

    /**
     * x轴
     */
    private BigDecimal xCoordinate;

    /**
     * y轴
     */
    private BigDecimal yCoordinate;

    /**
     * 最大速度
     */
    private BigDecimal maxSpeed;

    @Override
    public String toString() {
        return StrUtil.format("{} 电量[{}] ●{}XY{} 举升[{}] 状态[{}]  角度[{}]  ",
                deviceNo, power, xCoordinate.multiply(new BigDecimal("1000")).intValue(), yCoordinate.multiply(new BigDecimal("1000")).intValue(), LiftStatus.getLiftStatus(liftStatus).getMsg(), VehicleStatus.getVehicleStatus(status).getMsg(), angle.intValue());
    }
}
